#ifndef INDEX_H
#define INDEX_H

#include <iostream>
#include <vector>

//Clase que contiene los 8 booleanos correspondientes a los vertices de un cubo y funciones para operar con ellos.
class Index
	{
private:
	bool _index [8];
public:

		//constructors
		Index();

		Index(bool v0, bool v1, bool v2, bool v3, bool v4, bool v5, bool v6, bool v7);

		bool compareIndex(Index  & index2);

		Index rotateIndex(int x, int y, int z);

		//open your mind... be formless, shapeless, like water.
		Index rotateIndexX(int x);

		Index rotateIndexY(int y);

		Index rotateIndexZ(int z);

		void setIndex(int i, bool value);


		bool getValue(int i);

		Index complementario();

		bool esCasoBase(int i, std::vector<Index> & casosBase);

		Index  operator = ( Index  other);
	};
#endif
